# Copyright (c) 2020 Stephanos Ioannidis <root@stephanos.io>
# SPDX-License-Identifier: Apache-2.0

# Global Feature Definitions
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_NEON           ARM_MATH_NEON)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_HELIUM         ARM_MATH_HELIUM)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_MVEF           ARM_MATH_MVEF)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_MVEI           ARM_MATH_MVEI)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_LOOPUNROLL     ARM_MATH_LOOPUNROLL)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_ROUNDING       ARM_MATH_ROUNDING)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_MATRIXCHECK    ARM_MATH_MATRIX_CHECK)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_AUTOVECTORIZE  ARM_MATH_AUTOVECTORIZE)

# Table Definitions
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES                    ARM_DSP_CONFIG_TABLES)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES                    ARM_FAST_ALLOW_TABLES)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES                    ARM_FFT_ALLOW_TABLES)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ALL_FAST           ARM_ALL_FAST_TABLES)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ALL_FFT            ARM_ALL_FFT_TABLES)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_COS_F32        ARM_TABLE_SIN_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_COS_Q31        ARM_TABLE_SIN_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_COS_Q15        ARM_TABLE_SIN_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_SIN_F32        ARM_TABLE_SIN_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_SIN_Q31        ARM_TABLE_SIN_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_SIN_Q15        ARM_TABLE_SIN_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_SIN_COS_F32    ARM_TABLE_SIN_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_SIN_COS_Q31    ARM_TABLE_SIN_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_LMS_NORM_Q31   ARM_TABLE_RECIP_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_LMS_NORM_Q15   ARM_TABLE_RECIP_Q15)

if(CONFIG_CMSIS_DSP_MVEI)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q31  ARM_TABLE_FAST_SQRT_Q31_MVE)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_ARM_CMPLX_MAG_Q15  ARM_TABLE_FAST_SQRT_Q15_MVE)
endif()

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_16        ARM_TABLE_TWIDDLECOEF_F32_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_32        ARM_TABLE_TWIDDLECOEF_F32_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_64        ARM_TABLE_TWIDDLECOEF_F32_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_128       ARM_TABLE_TWIDDLECOEF_F32_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_256       ARM_TABLE_TWIDDLECOEF_F32_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_512       ARM_TABLE_TWIDDLECOEF_F32_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_1024      ARM_TABLE_TWIDDLECOEF_F32_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_2048      ARM_TABLE_TWIDDLECOEF_F32_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_4096      ARM_TABLE_TWIDDLECOEF_F32_4096)

if(CONFIG_CMSIS_DSP_HELIUM OR CONFIG_CMSIS_DSP_MVEF)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_16      ARM_TABLE_BITREVIDX_FXT_16)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_32      ARM_TABLE_BITREVIDX_FXT_32)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_64      ARM_TABLE_BITREVIDX_FXT_64)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_128     ARM_TABLE_BITREVIDX_FXT_128)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_256     ARM_TABLE_BITREVIDX_FXT_256)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_512     ARM_TABLE_BITREVIDX_FXT_512)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_1024    ARM_TABLE_BITREVIDX_FXT_1024)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_2048    ARM_TABLE_BITREVIDX_FXT_2048)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_4096    ARM_TABLE_BITREVIDX_FXT_4096)
else()
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_16      ARM_TABLE_BITREVIDX_FLT_16)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_32      ARM_TABLE_BITREVIDX_FLT_32)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_64      ARM_TABLE_BITREVIDX_FLT_64)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_128     ARM_TABLE_BITREVIDX_FLT_128)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_256     ARM_TABLE_BITREVIDX_FLT_256)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_512     ARM_TABLE_BITREVIDX_FLT_512)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_1024    ARM_TABLE_BITREVIDX_FLT_1024)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_2048    ARM_TABLE_BITREVIDX_FLT_2048)
  zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F32_4096    ARM_TABLE_BITREVIDX_FLT_4096)
endif()

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_16        ARM_TABLE_TWIDDLECOEF_F64_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_16        ARM_TABLE_BITREVIDX_FLT64_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_32        ARM_TABLE_TWIDDLECOEF_F64_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_32        ARM_TABLE_BITREVIDX_FLT64_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_64        ARM_TABLE_TWIDDLECOEF_F64_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_64        ARM_TABLE_BITREVIDX_FLT64_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_128       ARM_TABLE_TWIDDLECOEF_F64_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_128       ARM_TABLE_BITREVIDX_FLT64_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_256       ARM_TABLE_TWIDDLECOEF_F64_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_256       ARM_TABLE_BITREVIDX_FLT64_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_512       ARM_TABLE_TWIDDLECOEF_F64_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_512       ARM_TABLE_BITREVIDX_FLT64_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_1024      ARM_TABLE_TWIDDLECOEF_F64_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_1024      ARM_TABLE_BITREVIDX_FLT64_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_2048      ARM_TABLE_TWIDDLECOEF_F64_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_2048      ARM_TABLE_BITREVIDX_FLT64_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_4096      ARM_TABLE_TWIDDLECOEF_F64_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_F64_4096      ARM_TABLE_BITREVIDX_FLT64_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_16        ARM_TABLE_TWIDDLECOEF_Q31_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_16        ARM_TABLE_BITREVIDX_FXT_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_32        ARM_TABLE_TWIDDLECOEF_Q31_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_32        ARM_TABLE_BITREVIDX_FXT_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_64        ARM_TABLE_TWIDDLECOEF_Q31_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_64        ARM_TABLE_BITREVIDX_FXT_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_128       ARM_TABLE_TWIDDLECOEF_Q31_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_128       ARM_TABLE_BITREVIDX_FXT_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_256       ARM_TABLE_TWIDDLECOEF_Q31_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_256       ARM_TABLE_BITREVIDX_FXT_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_512       ARM_TABLE_TWIDDLECOEF_Q31_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_512       ARM_TABLE_BITREVIDX_FXT_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_1024      ARM_TABLE_TWIDDLECOEF_Q31_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_1024      ARM_TABLE_BITREVIDX_FXT_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_2048      ARM_TABLE_TWIDDLECOEF_Q31_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_2048      ARM_TABLE_BITREVIDX_FXT_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_4096      ARM_TABLE_TWIDDLECOEF_Q31_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q31_4096      ARM_TABLE_BITREVIDX_FXT_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_16        ARM_TABLE_TWIDDLECOEF_Q15_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_16        ARM_TABLE_BITREVIDX_FXT_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_32        ARM_TABLE_TWIDDLECOEF_Q15_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_32        ARM_TABLE_BITREVIDX_FXT_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_64        ARM_TABLE_TWIDDLECOEF_Q15_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_64        ARM_TABLE_BITREVIDX_FXT_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_128       ARM_TABLE_TWIDDLECOEF_Q15_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_128       ARM_TABLE_BITREVIDX_FXT_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_256       ARM_TABLE_TWIDDLECOEF_Q15_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_256       ARM_TABLE_BITREVIDX_FXT_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_512       ARM_TABLE_TWIDDLECOEF_Q15_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_512       ARM_TABLE_BITREVIDX_FXT_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_1024      ARM_TABLE_TWIDDLECOEF_Q15_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_1024      ARM_TABLE_BITREVIDX_FXT_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_2048      ARM_TABLE_TWIDDLECOEF_Q15_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_2048      ARM_TABLE_BITREVIDX_FXT_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_4096      ARM_TABLE_TWIDDLECOEF_Q15_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_CFFT_Q15_4096      ARM_TABLE_BITREVIDX_FXT_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_32   ARM_TABLE_TWIDDLECOEF_F64_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_32   ARM_TABLE_BITREVIDX_FLT64_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_32   ARM_TABLE_TWIDDLECOEF_RFFT_F64_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_64   ARM_TABLE_TWIDDLECOEF_F64_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_64   ARM_TABLE_BITREVIDX_FLT64_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_64   ARM_TABLE_TWIDDLECOEF_RFFT_F64_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_128  ARM_TABLE_TWIDDLECOEF_F64_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_128  ARM_TABLE_BITREVIDX_FLT64_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_128  ARM_TABLE_TWIDDLECOEF_RFFT_F64_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_256  ARM_TABLE_TWIDDLECOEF_F64_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_256  ARM_TABLE_BITREVIDX_FLT64_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_256  ARM_TABLE_TWIDDLECOEF_RFFT_F64_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_512  ARM_TABLE_TWIDDLECOEF_F64_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_512  ARM_TABLE_BITREVIDX_FLT64_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_512  ARM_TABLE_TWIDDLECOEF_RFFT_F64_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 ARM_TABLE_TWIDDLECOEF_F64_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 ARM_TABLE_BITREVIDX_FLT64_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_1024 ARM_TABLE_TWIDDLECOEF_RFFT_F64_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 ARM_TABLE_TWIDDLECOEF_F64_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 ARM_TABLE_BITREVIDX_FLT64_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_2048 ARM_TABLE_TWIDDLECOEF_RFFT_F64_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 ARM_TABLE_TWIDDLECOEF_F64_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 ARM_TABLE_BITREVIDX_FLT64_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F64_4096 ARM_TABLE_TWIDDLECOEF_RFFT_F64_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_32   ARM_TABLE_TWIDDLECOEF_F32_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_32   ARM_TABLE_BITREVIDX_FLT_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_32   ARM_TABLE_TWIDDLECOEF_RFFT_F32_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_64   ARM_TABLE_TWIDDLECOEF_F32_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_64   ARM_TABLE_BITREVIDX_FLT_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_64   ARM_TABLE_TWIDDLECOEF_RFFT_F32_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_128  ARM_TABLE_TWIDDLECOEF_F32_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_128  ARM_TABLE_BITREVIDX_FLT_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_128  ARM_TABLE_TWIDDLECOEF_RFFT_F32_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_256  ARM_TABLE_TWIDDLECOEF_F32_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_256  ARM_TABLE_BITREVIDX_FLT_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_256  ARM_TABLE_TWIDDLECOEF_RFFT_F32_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_512  ARM_TABLE_TWIDDLECOEF_F32_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_512  ARM_TABLE_BITREVIDX_FLT_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_512  ARM_TABLE_TWIDDLECOEF_RFFT_F32_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 ARM_TABLE_TWIDDLECOEF_F32_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 ARM_TABLE_BITREVIDX_FLT_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_1024 ARM_TABLE_TWIDDLECOEF_RFFT_F32_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 ARM_TABLE_TWIDDLECOEF_F32_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 ARM_TABLE_BITREVIDX_FLT_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_2048 ARM_TABLE_TWIDDLECOEF_RFFT_F32_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 ARM_TABLE_TWIDDLECOEF_F32_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 ARM_TABLE_BITREVIDX_FLT_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_FAST_F32_4096 ARM_TABLE_TWIDDLECOEF_RFFT_F32_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_128       ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_128       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_128       ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_512       ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_512       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_512       ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_2048      ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_2048      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_2048      ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_8192      ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_8192      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_F32_8192      ARM_TABLE_TWIDDLECOEF_F32_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_32        ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_32        ARM_TABLE_TWIDDLECOEF_Q31_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_32        ARM_TABLE_BITREVIDX_FXT_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_64        ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_64        ARM_TABLE_TWIDDLECOEF_Q31_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_64        ARM_TABLE_BITREVIDX_FXT_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_128       ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_128       ARM_TABLE_TWIDDLECOEF_Q31_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_128       ARM_TABLE_BITREVIDX_FXT_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_256       ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_256       ARM_TABLE_TWIDDLECOEF_Q31_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_256       ARM_TABLE_BITREVIDX_FXT_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_512       ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_512       ARM_TABLE_TWIDDLECOEF_Q31_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_512       ARM_TABLE_BITREVIDX_FXT_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_1024      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_1024      ARM_TABLE_TWIDDLECOEF_Q31_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_1024      ARM_TABLE_BITREVIDX_FXT_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_2048      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_2048      ARM_TABLE_TWIDDLECOEF_Q31_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_2048      ARM_TABLE_BITREVIDX_FXT_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_4096      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_4096      ARM_TABLE_TWIDDLECOEF_Q31_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_4096      ARM_TABLE_BITREVIDX_FXT_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_8192      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_8192      ARM_TABLE_TWIDDLECOEF_Q31_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q31_8192      ARM_TABLE_BITREVIDX_FXT_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_32        ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_32        ARM_TABLE_TWIDDLECOEF_Q15_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_32        ARM_TABLE_BITREVIDX_FXT_16)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_64        ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_64        ARM_TABLE_TWIDDLECOEF_Q15_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_64        ARM_TABLE_BITREVIDX_FXT_32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_128       ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_128       ARM_TABLE_TWIDDLECOEF_Q15_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_128       ARM_TABLE_BITREVIDX_FXT_64)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_256       ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_256       ARM_TABLE_TWIDDLECOEF_Q15_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_256       ARM_TABLE_BITREVIDX_FXT_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_512       ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_512       ARM_TABLE_TWIDDLECOEF_Q15_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_512       ARM_TABLE_BITREVIDX_FXT_256)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_1024      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_1024      ARM_TABLE_TWIDDLECOEF_Q15_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_1024      ARM_TABLE_BITREVIDX_FXT_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_2048      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_2048      ARM_TABLE_TWIDDLECOEF_Q15_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_2048      ARM_TABLE_BITREVIDX_FXT_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_4096      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_4096      ARM_TABLE_TWIDDLECOEF_Q15_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_4096      ARM_TABLE_BITREVIDX_FXT_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_8192      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_8192      ARM_TABLE_TWIDDLECOEF_Q15_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_RFFT_Q15_8192      ARM_TABLE_BITREVIDX_FXT_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_128       ARM_TABLE_DCT4_F32_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_128       ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_128       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_128       ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_512       ARM_TABLE_DCT4_F32_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_512       ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_512       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_512       ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_2048      ARM_TABLE_DCT4_F32_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_2048      ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_2048      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_2048      ARM_TABLE_TWIDDLECOEF_F32_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_8192      ARM_TABLE_DCT4_F32_8192)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_8192      ARM_TABLE_REALCOEF_F32)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_8192      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_F32_8192      ARM_TABLE_TWIDDLECOEF_F32_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_128       ARM_TABLE_DCT4_Q31_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_128       ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_128       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_128       ARM_TABLE_TWIDDLECOEF_Q31_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_512       ARM_TABLE_DCT4_Q31_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_512       ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_512       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_512       ARM_TABLE_TWIDDLECOEF_Q31_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_2048      ARM_TABLE_DCT4_Q31_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_2048      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_2048      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_2048      ARM_TABLE_TWIDDLECOEF_Q31_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_8192      ARM_TABLE_DCT4_Q31_8192)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_8192      ARM_TABLE_REALCOEF_Q31)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_8192      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q31_8192      ARM_TABLE_TWIDDLECOEF_Q31_4096)

zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_128       ARM_TABLE_DCT4_Q15_128)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_128       ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_128       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_128       ARM_TABLE_TWIDDLECOEF_Q15_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_512       ARM_TABLE_DCT4_Q15_512)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_512       ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_512       ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_512       ARM_TABLE_TWIDDLECOEF_Q15_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_2048      ARM_TABLE_DCT4_Q15_2048)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_2048      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_2048      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_2048      ARM_TABLE_TWIDDLECOEF_Q15_4096)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_8192      ARM_TABLE_DCT4_Q15_8192)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_8192      ARM_TABLE_REALCOEF_Q15)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_8192      ARM_TABLE_BITREV_1024)
zephyr_compile_definitions_ifdef(CONFIG_CMSIS_DSP_TABLES_DCT4_Q15_8192      ARM_TABLE_TWIDDLECOEF_Q15_4096)

# CMSIS-DSP Components
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_BASICMATH   BasicMathFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_COMPLEXMATH ComplexMathFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_CONTROLLER  ControllerFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_FASTMATH    FastMathFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_FILTERING   FilteringFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_MATRIX      MatrixFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_STATISTICS  StatisticsFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_SUPPORT     SupportFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_TRANSFORM   TransformFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_SVM         SVMFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_BAYES       BayesFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_DISTANCE    DistanceFunctions)
add_subdirectory_ifdef(CONFIG_CMSIS_DSP_TABLES      CommonTables)
